home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / printing / prntstat / winapi.bas < prev   
BASIC Source File  |  1995-10-17  |  2KB  |  51 lines

  1. '
  2. '****************************************************************************
  3.  
  4. ' All code and files Copyright (c) 1994, 1995 Gregory H. Bragg
  5. ' Phone:      (416) 399-0995
  6. ' Fax:        (416) 497-3397
  7. ' Compuserve: 75027,2674
  8. ' Internet:   75027.2674@compuserve.com
  9. ' Written:    September 23, 1995
  10. ' Revised:    October 7, 1995
  11. '
  12. '****************************************************************************
  13. '
  14. Option Explicit
  15.  
  16. ' API function to read WIN.INI to get the name, port type and port number
  17. ' of the default printer...
  18. Declare Function GetProfileString Lib "Kernel" (ByVal lpAppName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer) As Integer
  19.  
  20. '
  21. '****************************************************************************
  22. '
  23. ' Function wrapper for Windows API function GetProfileString()
  24. ' This procedure will be used for reading WIN.INI
  25. ' Revised: September 23, 1995
  26. '
  27. '****************************************************************************
  28. '
  29. Function GetIniProfileString (Section As String, Entry As String, default As String) As String
  30.  
  31.     Dim nChars As Integer
  32.     Dim nBuffLen As Integer
  33.     Dim mzBuff As String
  34.  
  35.     'keep making the buffer bigger until it is big enough...
  36.     Do
  37.         nBuffLen = nBuffLen + 256
  38.         mzBuff = Space(nBuffLen)
  39.         nChars = GetProfileString(Section, ByVal Entry, ByVal default, mzBuff, nBuffLen)
  40.         'nChars holds nBuffLen - 2 if buffer too small
  41.     Loop Until nChars <> nBuffLen - 2
  42.  
  43.     If nChars > 0 Then
  44.         GetIniProfileString$ = Left(mzBuff, nChars)
  45.     Else
  46.         GetIniProfileString$ = ""
  47.     End If
  48.  
  49. End Function
  50.  
  51.